Computing systems may contain multiple buffers for storing video data that is used to display images on a screen. For example, some computers use page flipping and/or triple buffering to display quickly images on a screen. In page flipping, video data is stored in separate buffers. At any given moment, video data may be inputted (or written) to a first buffer and outputted (or read) from a second buffer to display an image on the screen. Once the data from the second buffer has been outputted to the screen, the roles of each buffer reverse—new video data may be written to the second buffer while the video data previously written to the first buffer may be read and displayed on the screen.
FIG. 1 shows how page flipping with three scanout buffers was used to display image data on one or more display screens. A graphic processor included a set of scanout buffers 1 to 3. Each set of scanout buffers was configured to support a different video resolution. For example, a first set of buffers 10 was configured to support a first resolution X of a first and a second display screen 17 and 18. A second set of buffers 11 was configured to support a second resolution Y of a third display screen 19. The second set of buffers 11 was provided to support an option for outputting a video signal to an additional display device at a different resolution than the first display supported by the first set of buffers 10.
In the prior art, the scanout buffers 1 to 3 were each used to store display data which was then outputted to display screen 17. Each of the buffers 1 to 3 contained frame data from successive image frames at resolution X for buffer set 10 and resolution Y for buffer set 11. At about time t1, the frame A data from buffer 1 would be read out to display screen 17. Once the frame A data was read out from buffer 1, the frame B data would be read out from buffer 2 at about time t2, and the process would continue reading out the next buffered frame data at about each subsequent time interval. Once the data was read out from a buffer, such as the frame A data from buffer 1, the frame A data would be updated with new data, in this case frame D data at the resolution X for buffer set 10 and resolution Y for buffer set 11, representing a next frame in the sequence to be buffered. Thus, the same frame data would be separately maintained at different resolutions for each set of buffers 10 and 11 at different resolutions. In some instances in the past, the frame A data would be overwritten by frame D data in each of the buffer sets 10 and 11 at the respective resolutions to update each buffer 1 with data from new frame D at the different resolutions.
This process repeated continuously. For example, after the frame B data had been read out from buffer 2, the frame B data in buffer 2 would be updated with frame E data representing a next frame in the sequence to be buffered.
Some newer displays have high pixel densities supporting higher resolutions. To use the higher resolutions, the frame data must include additional pixel information for the additional pixels included as part of the high pixel densities. Including this additional pixel information in frame data results in longer reading and writing times into each of the buffers. This may result in increased image display latency that computer users would find undesirable.
Additionally, different displays may support different resolutions. In the past, when two or more displays with different resolutions were in use, the image data for each display would be separately buffered at each resolution. Maintaining multiple separate sets of buffers at higher resolutions may require the use of additional resources and also result in increased latency. These latency effects may result in increased delay from when a user moves the mouse or types a key until the movement or key press is depicted on the screen.
There is a need for fast buffering of high resolution frame data that reduces the undesirable latency associated with buffering additional pixel information for one or more high resolution displays operating a different resolutions.